#include <iostream>

class Base
{
public:
     virtual void show()
    {
        std::cout<<"Base"<<std::endl;
    }
};

class Derived:public Base
{                   //超级重要！！！！   再听听 
public:             //函数重载：函数名相同，参数不同
    void show()     //名词遮蔽：子类函数和父类函数同名，父类的该函数被隐藏无法调用
                    //函数重写：函数完全一样，无论是函数名还是参数，只是把父类隐藏，加上域名就可以
    {
        std::cout<<"Derived"<<std::endl;
    }
};

int main()
{
    Base * d = new Derived;
    d->show();
    return 0;
}